
现在的高级语言通常使用聚合数据类型和面向对象编程(OOP)结构。LLVM IR对聚合数据类型有一定的支持，而OOP结构(如类)必须自己实现。添加聚合类型会引起传递聚合类型参数的问题。不同的平台有不同的规则(这也会体现在IR上)，遵循调用约定还能够调用系统函数。

本章中，将了解如何将聚合数据类型和指针转换为LLVM IR，以及如何以符合系统的方式将参数传递给函数。还将了解如何在LLVM IR中实现类和虚函数。

本章中，将了解以下内容:

\begin{itemize}
\item
处理数组、结构体和指针

\item
正确获取应用程序的二进制接口(ABI)

\item
为类和虚函数创建IR代码
\end{itemize}

本章结束时，将了解为聚合数据类型和OOP构造创建LLVM IR的知识。还将了解如何根据平台的规则，传递聚合数据类型。

































